// package benchmark;
//
//
// import com.yy.risk.armor.business.logic.api.request.sclive.ScContentRequest;
//
// import java.lang.reflect.InvocationTargetException;
// import java.util.Collection;
// import java.util.concurrent.TimeUnit;
//
// import lombok.extern.slf4j.Slf4j;
// import org.apache.commons.beanutils.PropertyUtils;
// import org.assertj.core.util.Lists;
// import org.openjdk.jmh.annotations.Benchmark;
// import org.openjdk.jmh.annotations.BenchmarkMode;
// import org.openjdk.jmh.annotations.Mode;
// import org.openjdk.jmh.annotations.OutputTimeUnit;
// import org.openjdk.jmh.annotations.Param;
// import org.openjdk.jmh.annotations.Scope;
// import org.openjdk.jmh.annotations.Setup;
// import org.openjdk.jmh.annotations.State;
// import org.openjdk.jmh.annotations.TearDown;
// import org.openjdk.jmh.results.RunResult;
// import org.openjdk.jmh.runner.Runner;
// import org.openjdk.jmh.runner.options.Options;
// import org.openjdk.jmh.runner.options.OptionsBuilder;
//
// @BenchmarkMode(Mode.SingleShotTime)
// @OutputTimeUnit(TimeUnit.SECONDS)
// @State(Scope.Benchmark)
// @Slf4j
// public class BeanUtilsTest {
//
//
//     /**
//      * 次数参数
//      */
//     @Param({"50", "100", "1000", "10000", "100000"})
//     private int count;
//
//     ScContentRequest scContentRequest;
//
//     public static void main(String[] args) throws Exception {
//         Options opt = new OptionsBuilder()
//             .include(BeanUtilsTest.class.getSimpleName())
//             .forks(1)
//             .warmupIterations(0)
//             .build();
//         Collection<RunResult> results = new Runner(opt).run();
//
//
//     }
//
//
//     @Benchmark
//     public void map()  {
//         reflectmethod();
//     }
//
//
//
//
//     @Setup
//     public void prepare() {
//         scContentRequest = new ScContentRequest();
//         ScContentRequest.ProductItem productItem = new ScContentRequest.ProductItem();
//         scContentRequest.setProductItems(Lists.newArrayList(productItem));
//
//
//     }
//
//     @TearDown
//     public void shutdown() {
//     }
//
//     private void reflectmethod(){
//         for (int i = 0; i < count; i++) {
//             try {
//                 PropertyUtils.describe(scContentRequest);
//             } catch (InvocationTargetException e) {
//                 e.printStackTrace();
//             } catch (NoSuchMethodException e) {
//                 e.printStackTrace();
//             } catch (IllegalAccessException e) {
//                 e.printStackTrace();
//             }
//         }
//     }
//
//
//
//
//
// }
